// Copyright (c) Microsoft Corporation
// All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License.  You may obtain a copy
// of the License at http://www.apache.org/licenses/LICENSE-2.0
// 
// THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
// WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
// MERCHANTABLITY OR NON-INFRINGEMENT.
// 
// See the Apache Version 2.0 License for specific language governing
// permissions and limitations under the License.

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.34014
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace Microsoft.Hadoop.Client
{
    using System;
    using System.Threading.Tasks;
    using Microsoft.Hadoop.Client;
    using Microsoft.WindowsAzure.Management.HDInsight.Framework.Rest;

    [System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.WindowsAzure.Management.HDInsight.Framework.Rest.CodeGen.HttpRestClient" +
        "CodeGenerator", "1.0.0.0")]
    internal class HadoopApplicationHistoryRestReadClient : HttpRestClient<IHadoopApplicationHistoryRestReadClient>, IHadoopApplicationHistoryRestReadClient
    {
        public HadoopApplicationHistoryRestReadClient(Uri baseUri, HttpRestClientConfiguration configuration) :
            base(baseUri, configuration)
        {
        }

        [System.Runtime.CompilerServices.MethodImplAttribute(72)]
        public virtual Task<ApplicationListResult> ListCompletedApplicationsAsync(string submittedTimeBegin, string submittedTimeEnd)
        {
            return (Task<ApplicationListResult>)base.CreateAndInvokeRestRequestForParentMethodAsync<ApplicationListResult>(submittedTimeBegin, submittedTimeEnd);
        }

        [System.Runtime.CompilerServices.MethodImplAttribute(72)]
        public virtual Task<ApplicationGetResult> GetApplicationDetailsAsync(string applicationId)
        {
            return (Task<ApplicationGetResult>)base.CreateAndInvokeRestRequestForParentMethodAsync<ApplicationGetResult>(applicationId);
        }

        [System.Runtime.CompilerServices.MethodImplAttribute(72)]
        public virtual Task<ApplicationAttemptListResult> ListApplicationAttemptsAsync(string applicationId)
        {
            return (Task<ApplicationAttemptListResult>)base.CreateAndInvokeRestRequestForParentMethodAsync<ApplicationAttemptListResult>(applicationId);
        }

        [System.Runtime.CompilerServices.MethodImplAttribute(72)]
        public virtual Task<ApplicationContainerListResult> ListApplicationContainersAsync(string applicationId, string applicationAttemptId)
        {
            return (Task<ApplicationContainerListResult>)base.CreateAndInvokeRestRequestForParentMethodAsync<ApplicationContainerListResult>(applicationId, applicationAttemptId);
        }
    }
}